/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ig.metrica.ui.modelo.modelotablas;

import ig.finanzas.EspeciePK;
import ig.finanzas.TasaPK;
import ig.finanzas.riesgo.FactorRiesgoPersonal;
import ig.metrica.riesgo.FactorRiesgoPersonalMetrica;
import ig.util.excepciones.DatoInvalidoExcepcion;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.swing.JOptionPane;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author jsanchez
 */
public class ModeloTablaALM extends AbstractTableModel{

    private String[] titulos1 = { ".", "Intervenir en calculo ALM"};
    private Hashtable<EspeciePK,Boolean> relacionEspecies;
    private Hashtable relacionEspeciesPantalla;

    public ModeloTablaALM(Hashtable relacionEspecies){
        this.relacionEspecies = relacionEspecies;
    }

    public Hashtable getRelacionEspeciesPantalla() {
        return relacionEspeciesPantalla;
    }

    public String[] getTitulos1() {
        return titulos1;
    }

    public void setRelacionEspecies(Hashtable<EspeciePK,Boolean> relacionEspecies){
        this.relacionEspecies = relacionEspecies;
        fireTableDataChanged();
    }
    public void setRelacionEspeciesPantalla(Hashtable relacionEspecies){
        this.relacionEspeciesPantalla = relacionEspecies;
        fireTableDataChanged();
    }
    public Hashtable getRelacionEspecies(){
        return relacionEspecies;
    }

    public String getColumnName(int col){
        return titulos1[col];
    }

    public Class getColumnClass(int col){
        return col == 0 ?  String.class : Boolean.class;
    }

    public int getColumnCount(){
        return titulos1.length;
    }

    public int getRowCount(){
        return relacionEspecies.size();
    }

    public boolean isCellEditable(int row, int col){
        if (col==1)
            return true;

        return false;
    }

    public void setValueAt(Object value, int row, int col){

        ArrayList especiesTemp = new ArrayList(relacionEspecies.keySet());
        Collections.sort(especiesTemp);
        Object llave = especiesTemp.get( row );
        relacionEspecies.put((EspeciePK)llave,(Boolean)value);
        
    }

    public Object getValueAt(int row, int col){
        if (col==0){
            ArrayList especiesTemp = new ArrayList(relacionEspecies.keySet());
            Collections.sort(especiesTemp);
            Object llave = especiesTemp.get(row);
            String llave1= null;
            String tmp= null;
            try {
                tmp=llave.toString().trim();
                llave1=(String) relacionEspeciesPantalla.get(tmp);
            } catch (Exception e) {}

            if( llave1 != null )
                return llave1 + " : "+ llave;
            else
                return llave;
        } else {
            ArrayList especiesTemp = new ArrayList(relacionEspecies.keySet());
            Collections.sort(especiesTemp);
            Object llave = especiesTemp.get(row);
            return relacionEspecies.get(llave);
        }
    }
}